home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 1 / BBS in a box - Trilogy I.iso / Files / Publish / Photoshop / Plug-in Modules / Code / PIGeneral.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-26  |  4.5 KB  |  214 lines  |  [TEXT/MPS ]

  1. /*
  2.     File: PIGeneral.h
  3.  
  4.     Copyright 1992 by Adobe Systems, Inc.  All rights reserved.
  5.  
  6.     This file describes the elements common to all plug-in interfaces.
  7. */
  8.  
  9. #ifndef __PIGeneral__
  10. #define __PIGeneral__
  11.  
  12. #include "PITypes.h"
  13.  
  14. typedef struct PlugInInfo
  15.     {
  16.  
  17.     short    version;            /* The version number of the interface supported. */
  18.     short    subVersion;         /* The sub-version number.                          */
  19.     short    priority;            /* The plug-in's priority.                        */
  20.     short    generalInfoSize;    /* The size of the general info.                  */
  21.     short    typeInfoSize;        /* The size of the type specific info.              */
  22.     short    supportsMode;        /* A bit mask indicating supported image modes.   */
  23.     OSType    requireHost;        /* A required host if any.                          */
  24.  
  25.     }
  26. PlugInInfo;
  27.  
  28. typedef struct PSBuffer *BufferID;
  29.  
  30. #define kPIGeneralInfoSize 16
  31.  
  32. /* Image modes */
  33.  
  34. #define plugInModeBitmap       0
  35. #define plugInModeGrayScale    1
  36. #define plugInModeIndexedColor 2
  37. #define plugInModeRGBColor       3
  38. #define plugInModeCMYKColor    4
  39. #define plugInModeHSLColor       5
  40. #define plugInModeHSBColor       6
  41. #define plugInModeMultichannel 7
  42. #define plugInModeDuotone       8
  43. #define plugInModeLabColor       9
  44.  
  45. /* The Window procID for a Moveable Modal Dialog window that can be used
  46.  *    under System 6.  WDEF(128) is part of Photoshop.
  47.  */
  48.  
  49. #define PSmovableDBoxProc    (128*16+5)
  50.  
  51. /* Other commonly used structures */
  52.  
  53. typedef short PlaneMap [16];
  54.  
  55. typedef struct PlugInMonitor
  56.     {
  57.     Fixed gamma;
  58.     Fixed redX;
  59.     Fixed redY;
  60.     Fixed greenX;
  61.     Fixed greenY;
  62.     Fixed blueX;
  63.     Fixed blueY;
  64.     Fixed whiteX;
  65.     Fixed whiteY;
  66.     Fixed ambient;
  67.     }
  68. PlugInMonitor;
  69.  
  70. typedef struct PSPixelMap
  71.     {
  72.     int32 version;
  73.     VRect bounds;
  74.     int32 imageMode;
  75.     int32 rowBytes;
  76.     int32 colBytes;
  77.     int32 planeBytes;
  78.     void *baseAddr;
  79.     }
  80. PSPixelMap;
  81.  
  82. #ifdef __cplusplus
  83. extern "C"
  84.     {
  85. #endif
  86.  
  87.     typedef MACPASCAL Boolean (*TestAbortProc) (void);
  88.  
  89.     typedef MACPASCAL void (*ProgressProc) (int32 done, int32 total);
  90.  
  91.     typedef MACPASCAL void (*HostProc) (int16 selector, int32 *data);
  92.  
  93.     typedef MACPASCAL int32 (*SpaceProc) (void);
  94.  
  95.     typedef MACPASCAL Handle (*NewPIHandleProc) (int32 size);
  96.  
  97.     typedef MACPASCAL void (*DisposePIHandleProc) (Handle h);
  98.     
  99.     typedef MACPASCAL int32 (*GetPIHandleSizeProc) (Handle h);
  100.     
  101.     typedef MACPASCAL OSErr (*SetPIHandleSizeProc) (Handle h, int32 newSize);
  102.     
  103.     typedef MACPASCAL Ptr (*LockPIHandleProc) (Handle h, Boolean moveHigh);
  104.     
  105.     typedef MACPASCAL void (*UnlockPIHandleProc) (Handle h);
  106.  
  107.     typedef MACPASCAL OSErr (*AllocateBufferProc) (int32 size, BufferID *bufferID);
  108.  
  109.     typedef MACPASCAL Ptr (*LockBufferProc) (BufferID bufferID, Boolean moveHigh);
  110.  
  111.     typedef MACPASCAL void (*UnlockBufferProc) (BufferID bufferID);
  112.  
  113.     typedef MACPASCAL void (*FreeBufferProc) (BufferID bufferID);
  114.     
  115.     typedef MACPASCAL int32 (*BufferSpaceProc) (void);
  116.     
  117.     typedef MACPASCAL int16 (*CountPIResourcesProc) (ResType type);
  118.     
  119.     typedef MACPASCAL Handle (*GetPIResourceProc) (ResType type, int16 index);
  120.     
  121.     typedef MACPASCAL void (*DeletePIResourceProc) (ResType type, int16 index);
  122.     
  123.     typedef MACPASCAL OSErr (*AddPIResourceProc) (ResType type, Handle data);
  124.     
  125.     typedef MACPASCAL void (*ProcessEventProc) (void *event);
  126.     
  127.     typedef MACPASCAL OSErr (*DisplayPixelsProc) (const PSPixelMap *source,
  128.                                                   const VRect *srcRect,
  129.                                                   int32 dstRow,
  130.                                                   int32 dstCol,
  131.                                                   unsigned32 platformContext);
  132.  
  133. #ifdef __cplusplus
  134.     };
  135. #endif
  136.  
  137. #define kCurrentBufferProcsVersion 2
  138.  
  139. typedef struct BufferProcs
  140.     {
  141.  
  142.     int16 bufferProcsVersion;
  143.     
  144.     int16 numBufferProcs;
  145.  
  146.     AllocateBufferProc allocateProc;
  147.  
  148.     LockBufferProc lockProc;
  149.  
  150.     UnlockBufferProc unlockProc;
  151.  
  152.     FreeBufferProc freeProc;
  153.     
  154.     BufferSpaceProc spaceProc;
  155.  
  156.     }
  157. BufferProcs;
  158.  
  159. #define kCurrentBufferProcsCount \
  160.     ((sizeof(BufferProcs) - offsetof(BufferProcs, allocateProc)) / sizeof(void *)) 
  161.  
  162. #define kCurrentResourceProcsVersion 3
  163.  
  164. typedef struct ResourceProcs
  165.     {
  166.     
  167.     int16 resourceProcsVersion;
  168.     
  169.     int16 numResourceProcs;
  170.     
  171.     CountPIResourcesProc countProc;
  172.     
  173.     GetPIResourceProc getProc;
  174.     
  175.     DeletePIResourceProc deleteProc;
  176.     
  177.     AddPIResourceProc addProc;
  178.     
  179.     }
  180. ResourceProcs;
  181.  
  182. #define kCurrentResourceProcsCount \
  183.     ((sizeof(ResourceProcs) - offsetof(ResourceProcs, countProc)) / sizeof(void *)) 
  184.  
  185. #define kCurrentHandleProcsVersion 1
  186.  
  187. typedef struct HandleProcs
  188.     {
  189.     
  190.     int16 handleProcsVersion;
  191.     
  192.     int16 numHandleProcs;
  193.     
  194.     NewPIHandleProc newProc;
  195.     
  196.     DisposePIHandleProc disposeProc;
  197.     
  198.     GetPIHandleSizeProc getSizeProc;
  199.     
  200.     SetPIHandleSizeProc setSizeProc;
  201.     
  202.     LockPIHandleProc lockProc;
  203.     
  204.     UnlockPIHandleProc unlockProc;
  205.     
  206.     }
  207. HandleProcs;
  208.  
  209. #define kCurrentHandleProcsCount \
  210.     ((sizeof(HandleProcs) - offsetof(HandleProcs, newProc)) / sizeof(void *)) 
  211.  
  212. #endif
  213.  
  214.